package com.itshen.jmh;

import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;

public class JMHSampleTest {

    /**
     * Throughput: 每段时间执行的次数，一般是秒
     * AverageTime: 方法的平均执行时间，一次执行需要的时间
     */
    @Benchmark
    @BenchmarkMode(Mode.Throughput)
    public void test() {

    }

    public static void main(String[] args) throws RunnerException {
        Options opt = new OptionsBuilder()
                .include(JMHSampleTest.class.getName())
                // 预热做10轮
                .warmupIterations(10)
                // 正式计量测试做10轮
                .measurementIterations(10)
                // 使用进程个数
                .forks(3)
                .build();

        new Runner(opt).run();
    }
}
